<?php

class FormularioDeInformatica extends Model{
	/*******************
	 * ATRIBUTOS
	 *******************/
	private $idInformaticaWord;
	private $nivelConhecimentoWord;
	private $idInformaticaPowerPoint;	
	private $nivelConhecimentoPowerPoint;
	private $idInformaticaExcel;
	private $nivelConhecimentoExcel;
	private $idInformaticaInternet;
	private $nivelConhecimentoInternet;
	private $idInformaticaAdicional;
	private $checkOutroConhecimento;
	private $nomeOutroConhecimento;
	private $nivelConhecimentoOutro;
	private $listaDeInformaticas;
	private $camposPreenchidos;


	/*******************
	 * CONSTRUTOR
	 *******************/

	public function FormularioDeInformatica($listaDeInformaticas = null){
		$this->idInformaticaWord = 0;
		$this->nivelConhecimentoWord = "";
		$this->idInformaticaPowerPoint = 0;		
		$this->nivelConhecimentoPowerPoint = "";
		$this->idInformaticaExcel = 0;
		$this->nivelConhecimentoExcel = "";
		$this->idInformaticaInternet = 0;
		$this->nivelConhecimentoInternet = "";
		$this->idInformaticaAdicional = 0;
		$this->checkOutroConhecimento = "";
		$this->nomeOutroConhecimento = "";
		$this->nivelConhecimentoOutro = "";
		$this->camposPreenchidos = array();
		$this->listaDeInformaticas = array();
		if($listaDeInformaticas != null && isset($listaDeInformaticas)){
			$this->carregarDadosDoFormulario($listaDeInformaticas);
		}
	}

	/*******************
	 * METODOS
	 *******************/

	public function definirCampoPreenchido($nomeDoCampo, $valorDoCampo){
		$this->camposPreenchidos[$nomeDoCampo] = $valorDoCampo;
	}

	public function obterCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return $this->camposPreenchidos[$nomeDoCampo];
		}
		else{
			return "";
		}
	}

	public function isCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return true;
		}
		else{
			return false;
		}
	}

	//Repreencher o formulario em caso de carregamento do formulario, seja pela session ou pelo Banco de Dados
	private function carregarDadosDoFormulario($listaDeInformaticas){
		$this->listaDeInformaticas = $listaDeInformaticas;
		
		$tamanhoListaInformatica = count($this->listaDeInformaticas);
		
		$tipoDeInformatica = "";
		$informatica = unserialize($this->listaDeInformaticas[0]);
		
		for($posicao = 0; $posicao < $tamanhoListaInformatica; $posicao++){
			$informatica = unserialize($this->listaDeInformaticas[$posicao]);
			$tipoDeInformatica = $informatica->getConhecimentoEmInformatica();
			

			switch ($tipoDeInformatica){
				case "Word":
					$this->idInformaticaWord = $informatica->getIdInformatica();
					$this->nivelConhecimentoWord = $informatica->getNivelDoConhecimento();
					break;

				case "Power Point":
					$this->idInformaticaPowerPoint = $informatica->getIdInformatica();
					$this->nivelConhecimentoPowerPoint = $informatica->getNivelDoConhecimento();
					break;

				case "Excel":
					$this->idInformaticaExcel = $informatica->getIdInformatica();
					$this->nivelConhecimentoExcel = $informatica->getNivelDoConhecimento();
					break;

				case "Internet":
					$this->idInformaticaInternet = $informatica->getIdInformatica();
					$this->nivelConhecimentoInternet = $informatica->getNivelDoConhecimento();
					break;

				default:

					if($informatica->getConhecimentoEmInformatica() != "" || $informatica->getConhecimentoEmInformatica() != null){
						$this->idInformaticaAdicional = $informatica->getIdInformatica();
						$this->checkOutroConhecimento = "checkOutroConhecimento";
						$this->nomeOutroConhecimento = $informatica->getConhecimentoEmInformatica();
						$this->nivelConhecimentoOutro = $informatica->getNivelDoConhecimento();
					}	
					break;
			}

		}
		
		if($this->idInformaticaWord != null){
			$this->definirCampoPreenchido("IdInformaticaWord", $this->idInformaticaWord);
		}

		 if($this->nivelConhecimentoWord != null || $this->nivelConhecimentoWord != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoWord", $this->nivelConhecimentoWord);
		 }
		 
		if($this->idInformaticaPowerPoint != null){
			$this->definirCampoPreenchido("IdInformaticaPowerPoint", $this->idInformaticaPowerPoint);
		}
	
		 if($this->nivelConhecimentoPowerPoint != null || $this->nivelConhecimentoPowerPoint != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoPowerPoint", $this->nivelConhecimentoPowerPoint);
		 }
		 
		if($this->idInformaticaExcel != null){
			$this->definirCampoPreenchido("IdInformaticaExcel", $this->idInformaticaExcel);
		}
		 
		if($this->nivelConhecimentoExcel != null || $this->nivelConhecimentoExcel != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoExcel", $this->nivelConhecimentoExcel);
		 }
		 
		if($this->idInformaticaInternet != null){
			$this->definirCampoPreenchido("IdInformaticaInternet", $this->idInformaticaInternet);
		}
	
		 if($this->nivelConhecimentoInternet != null || $this->nivelConhecimentoInternet != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoInternet", $this->nivelConhecimentoInternet);
		 }
		 
		if($this->idInformaticaAdicional != null){
			$this->definirCampoPreenchido("IdInformaticaAdicional", $this->idInformaticaAdicional);
		}
	
		 if($this->checkOutroConhecimento != null || $this->checkOutroConhecimento != ""){
		 	$this->definirCampoPreenchido("checkOutroConhecimento", $this->checkOutroConhecimento);
	 	 }

		 if($this->nomeOutroConhecimento != null || $this->nomeOutroConhecimento != ""){
		 	$this->definirCampoPreenchido("nomeOutroConhecimento", trim($this->nomeOutroConhecimento));
		 }
	
		 if($this->nivelConhecimentoOutro != null || $this->nivelConhecimentoOutro != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoOutro", $this->nivelConhecimentoOutro);
		 }
	}

	//Tentativa de definir os campos já preenchidos pelo usuário em caso de erro ou qualquer outra necessidade
	public function recarregarDadosDoFormulario(){
		$nivelConhecimentoWord = "";
		if(isset($_POST['nivelConhecimentoWord'])){
			$idInformaticaWord = $_POST['IdInformaticaWord'];
			$nivelConhecimentoWord = $_POST['nivelConhecimentoWord'];
		}		
		$nivelConhecimentoPowerPoint = "";
		$idInformaticaPowerPoint = null;
		if(isset($_POST['nivelConhecimentoPowerPoint'])){
			$idInformaticaPowerPoint = $_POST['IdInformaticaPowerPoint'];
			$nivelConhecimentoPowerPoint = $_POST['nivelConhecimentoPowerPoint'];
		}
		$nivelConhecimentoExcel = "";
		if(isset($_POST['nivelConhecimentoExcel'])){
			$idInformaticaExcel = $_POST['IdInformaticaExcel'];
			$nivelConhecimentoExcel = $_POST['nivelConhecimentoExcel'];
		}
		$nivelConhecimentoInternet = "";
		if(isset($_POST['nivelConhecimentoInternet'])){
			$idInformaticaInternet = $_POST['IdInformaticaInternet'];
			$nivelConhecimentoInternet = $_POST['nivelConhecimentoInternet'];
		}
		

	    $nivelConhecimentoOutro = "";
		$checkOutroConhecimento = "";
		$idInformaticaAdicional = null;
		if(isset($_POST['checkOutroConhecimento'])){
			$idInformaticaAdicional = $_POST['IdInformaticaAdicional'];
			$checkOutroConhecimento = $_POST['checkOutroConhecimento'];
		}

		$nomeOutroConhecimento = $_POST['nomeOutroConhecimento'];
		$nivelConhecimentoOutro = "";
		if(isset($_POST['nivelConhecimentoOutro'])){
			$nivelConhecimentoOutro = $_POST['nivelConhecimentoOutro'];
		}

		
		if($idInformaticaWord != null){
			$this->definirCampoPreenchido("IdInformaticaWord", $idInformaticaWord);
		}
		
		 if($nivelConhecimentoWord != null || $nivelConhecimentoWord != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoWord", $nivelConhecimentoWord);
		 }
		 
		if($idInformaticaPowerPoint != null){
			$this->definirCampoPreenchido("IdInformaticaPowerPoint", $idInformaticaPowerPoint);
		}
	
		 if($nivelConhecimentoPowerPoint != null || $nivelConhecimentoPowerPoint != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoPowerPoint", $nivelConhecimentoPowerPoint);
		 }
		 
		if($idInformaticaExcel != null){
			$this->definirCampoPreenchido("IdInformaticaExcel", $idInformaticaExcel);
		}
		 
	 	if($nivelConhecimentoExcel != null || $nivelConhecimentoExcel != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoExcel", $nivelConhecimentoExcel);
		 }
		 
		if($idInformaticaInternet != null){
			$this->definirCampoPreenchido("IdInformaticaInternet", $idInformaticaInternet);
		}
	
		 if($nivelConhecimentoInternet != null || $nivelConhecimentoInternet != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoInternet", $nivelConhecimentoInternet);
		 }
		 
		if($idInformaticaAdicional != null){
			$this->definirCampoPreenchido("IdInformaticaAdicional", $idInformaticaAdicional);
		}

		 if($checkOutroConhecimento != null || $checkOutroConhecimento != ""){
		 	$this->definirCampoPreenchido("checkOutroConhecimento", $checkOutroConhecimento);
		 }
	
		 if($nomeOutroConhecimento != null || $nomeOutroConhecimento != ""){
		 	$this->definirCampoPreenchido("nomeOutroConhecimento", trim($this->nomeOutroConhecimento));
		 }
	
		 if($nivelConhecimentoOutro != null || $nivelConhecimentoOutro != ""){
		 	$this->definirCampoPreenchido("nivelConhecimentoOutro", $nivelConhecimentoOutro);
		 }

	}

}
?>